﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using IndignadoFramework.BackOffice.Models;
using IndignadoFramework.BackBone.Model;
using IndignadoFramework.BackBone.InternalServices;
using IndignadoFramework.BackBone.InternalServices.Implementacion;
using IndignadoFramework.BackOffice.Helper;

namespace IndignadoFramework.BackOffice.Controllers
{
    public class OrigenDeDatosController : Controller
    {
        private OrigenDeDatosServices _origenDeDatosServices;
        private OrigenDeDatosMapper _origenDeDatosMapper;

        public OrigenDeDatosController()
        {
            _origenDeDatosServices = new OrigenDeDatosServicesImpl();
            _origenDeDatosMapper = new OrigenDeDatosMapper();
        }

        public OrigenDeDatosController(OrigenDeDatosServices origenDeDatosServices)
        {
            _origenDeDatosServices = origenDeDatosServices;
        }

        //
        // GET: /OrigenDeDatos/
        public ActionResult Index()
        {
            return View();
        }


        [HttpGet]
        [Authorize]
        public ActionResult CrearOrigenDeDatos(int movimientoId)
        {
            ViewBag.MovimientoId = movimientoId;
            ViewBag.origenesDeDatosModel = _origenDeDatosServices.getOrigenesDeDatos(movimientoId);
            return View();
        }

        [HttpPost]
        [Authorize]
        public ActionResult CrearOrigenDeDatos(OrigenDeDatosRSS origenDeDatosRSS)
        {
            OrigenDeDatosModel origenDeDatosModel = _origenDeDatosMapper.RSSMapper(origenDeDatosRSS);
            _origenDeDatosServices.crearOrigenDeDatos(origenDeDatosRSS.MovimientoId, origenDeDatosModel);
            return RedirectToAction(
                   "CrearOrigenDeDatos",                // Action name
                   "OrigenDeDatos",  // Controller name
                   new { movimientoId = origenDeDatosRSS.MovimientoId }      // Route values
               ); ;
        }


    }
}
